#pragma once
#include<glm/glm.hpp>
#include<iostream>
#include<string>
#include<vector>
#include<glad/glad.h>
#include<GLFW/glfw3.h>
#include"../material/Shader.h"
struct  Vertex
{
	glm::vec3 Position;
	glm::vec3 Normal;
	glm::vec2 Texcoord;
};
struct Texture
{
	unsigned int id;
	std::string type;
	std::string path;
};
class Mesh
{
public:
	std::vector<Vertex> vertices;
	std::vector<unsigned int> indices;
	std::vector<Texture> texcures;
	Mesh(std::vector<Vertex> vertices, std::vector<unsigned int> indices, std::vector<Texture> texcures);
	Mesh(float vertices[]);
	~Mesh();
	void Draw(Shader* shader);
private:
	unsigned int VAO, VBO, EBO;
	void setupMesh();
};

